#
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements.  See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership.  The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License.  You may obtain a copy of the License at
#
#   http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied.  See the License for the
# specific language governing permissions and limitations
# under the License.
FROM eclipse-temurin:21-jre-ubi9-minimal

ARG AIRFLOW_APACHERAT_VERSION
ARG APACHERAT_VERSION
ARG APACHE_DOWNLOAD="https://downloads.apache.org"
ARG COMMIT_SHA
ENV dist_name="apache-rat-${APACHERAT_VERSION}"
ENV rat_tgz="${dist_name}-bin.tar.gz"

SHELL ["/bin/sh", "-e", "-x", "-c"]

# We don't download the KEYS file, but instead pre-bake them, so that any
# change to approved keys needs a manual approval. Rat is released fairly
# infrequently so this shouldn't be too onerous
# Those are build deps only but still we want the latest versions of those
# "Pin versions in apk add" https://github.com/hadolint/hadolint/wiki/DL3018
# hadolint ignore=DL3018
RUN wget -qT 30 "${APACHE_DOWNLOAD}/creadur/KEYS" && gpg --import KEYS && rm KEYS \
    && wget -qT 30 "${APACHE_DOWNLOAD}/creadur/${dist_name}/${rat_tgz}.asc" \
    && wget -qT 30 "${APACHE_DOWNLOAD}/creadur/${dist_name}/${rat_tgz}" \
    && gpg --verify "${rat_tgz}.asc" "${rat_tgz}" \
    && tar --extract --gzip --file "${rat_tgz}" --strip-components=1 "${dist_name}/${dist_name}.jar" "${dist_name}/LICENSE" \
    && rm -vrf "${rat_tgz}" "${rat_tgz}.asc" \
    && ln -s "${dist_name}.jar" "apache-rat.jar" \
    && rm -rf ~/.gnupg

LABEL org.apache.airflow.component="apache-rat"
LABEL org.apache.airflow.apache-rat.version="${APACHERAT_VERSION}"
LABEL org.apache.airflow.airflow-apache-rat.version="${AIRFLOW_APACHERAT_VERSION}"
LABEL org.apache.airflow.commit-sha="${COMMIT_SHA}"
LABEL maintainer="Apache Airflow Community <dev@airflow.apache.org>"

ENTRYPOINT ["java", "-jar", "apache-rat.jar" ]

CMD ["--help"]
